<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // 1 根据数据显示列表
        //    data = [{a:"url" , b:"蛋糕" , c:'price'} , {a:"url" , b:"冰淇淋" , c:'price'}]

        // data.filter(function(v , i) {return v.b.includes('蛋糕') })


        // 2 高频率触发事件的问题   --- 定时器叠加的问题
        //   设置开关   根据开关判断事件是否执行
        //   不断清除上一个定时器(延时器)   t是全局变量


        // 3 回调函数 callback   --- 把一个函数当做另一个函数的实参
        //    setInterval(function(){} ,1000)
        //    setInterval(fn , 1000)    注意fn是一个函数的名字，不能加括号


        // 按照一定的要求改变数组中的值，返回新的数组
        function myMap(arr, callback) {
            var newArr = [];
            for (var i in arr) {
                // var v = arr[i] / 2 ;
                // 新的v 等于某一个值    callback必须有返回值
                var v = callback(arr[i]);
                newArr.push(v);
            }
            return newArr;
        }


        // var arr2 = myMap([1, 2, 3], function (v) {
        //     return v - 4
        // })
        // console.log(arr2);

        function f(m) {
            return m * 3;
        }

        var arr2 = myMap([1, 2, 3], f);
        console.log(arr2);




    </script>

</body>

</html>